package com.sxj.corejava.code01_基础;

/**
 * @author 石小俊
 * @date 2024年02月29日 18:58
 */
public class Test02_基本数据类型 {
    public static void main(String[] args) {
        // 基本数据类型分为8种
        // 其中整数型分为四种:byte、short、int、long
        // 区别在于存储空间的大小
        // byte:[-128,127]
        byte b1 = 127;
        byte b2 = -128;
        // byte b3 = 128;
        // 打印2的15次方
        System.out.println(Math.pow(2,15));
        // short:[-32768,32767]
        short s1 = 32767;
        short s2 = -32768;
        // short s3 = -32769;

        // int是使用最多的整数类型
        // 默认所有数字都是使用int类型来处理
        System.out.println(Math.pow(2,31));
        int i1 = 2147483647;
        int i2 = -2147483648;
        // int i3 = 2147483648;
        // int i4 = -2147483649;

        // 当直接写数字,默认都是int类型
        // 如果数字以L或者l(小写L)结尾,才表示long类型
        long l1 = 1000L;
        long l2 = 1000l;

        // 在小数中,存在两种类型:float与double
        // 默认小数都是使用double来处理
        // 只有小数以F或者f结尾才表示float类型
        float f1 = 3.14f;
        double d1 = 3.14;
        float f2 = 3.14E8F;
        double d2 = 3.14E8;

        // 字符型char:表示通常意义下的一个字符,其值只能是一个字符
        // 字符型的值必须通过单引号括起来
        char c1 = 'a';
        char c2 = '1';
        char c3 = '@';
        // char c4 = '12'; // 不能超出一个字符
        // \n表面上是两个字符,但是在计算机中会进行处理
        // 处理的结果表示的是一个换行符
        // 因此,其也表示一个字符
        char c5 = '\n';
        // 也可以使用Unicode码来表示
        // 此处表面上有6个字符,Unicode码会被计算机进行解析
        // 其解析结果为英文字母a
        char c6 = '\u0061';
        System.out.println(c6);

        // boolean类型:表示真或者假,其值有两种:true(真)与false(假)
        boolean flag = true;
        boolean flag2 = false;
    }
}
